<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta http-equiv="Content-Language" content="en-us">
  <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
  <meta name="ProgId" content="FrontPage.Editor.Document">
  <title>VisIt 3.4 Release Notes</title>
</head>
<body>

<center><b><font size="6">VisIt 3.4 Release Notes</font></b></center>
<center><b><font size="4">November, 2023</font></b></center>

<p>Welcome to VisIt's release notes page. This page describes the important
enhancements and bug-fixes that were added to this release.</p>

<p><b>Sections</b></p>
<ul>
  <li><a href="#General_features">Features for all users</a></li>
  <li><a href="#GUI_changes">Changes in GUI behavior</a></li>
  <li><a href="#File_format">Changes to file format readers</a></li>
  <li><a href="#Plot_changes">Changes to plots</a></li>
  <li><a href="#Expression_changes">Changes to expressions</a></li>
  <li><a href="#Query_changes">Changes to picks and queries</a></li>
  <li><a href="#Bugs_fixed">Other bug fixes</a></li>
  <li><a href="#Configuration_changes">Configuration changes</a></li>
  <li><a href="#Build_features">Changes to build_visit</a></li>
  <li><a href="#Dev_changes">Changes for VisIt developers</a></li>
</ul>

<a name="General_features"></a>
<p><b><font size="4">General features added in version 3.4</font></b></p>
<ul>
  <li>A number of changes have been made to the handling of color tables. These include:
    <ul>
      <li>Users can no longer edit, delete, or export built-in color tables. Users must create new color tables to edit, export, and delete them. Color tables are no longer saved when saving state.</li>
      <li>Color table tags are now editable from the GUI. Tags can be added and removed from color tables at will. Built-in color tables cannot have tags that they come with removed.</li>
      <li>Color table tag changes can now be saved to and loaded from config/session files.</li> 
      <li>Color table tags are now restricted to contain only alphanumeric characters plus spaces, dashes, equals, greater-than or less-than characters .</li>
      <li>Color table tag filtering is no longer optional; it is always on. There is also a new button to select (and deselect) all of the tags.</li>
      <li>Color table searching is no longer optional; it is always on. A dedicated search bar has been added.</li>
      <li>The color table window has a new horizontal layout.</li>
    </ul>
  </li>
  <li>It is now possible to keyframe operator attributes. When in keyframe mode, VisIt will interpolate the operator attributes between operator keyframes. Keyframing makes it possible to easily create sophisticated animations such as animating slice planes, iso surfaces and any operator attributes available. Two new functions have been added to the Python scripting interface to support operator keyframing. They are <code>DeleteOperatorKeyframe</code> and <code>MoveOperatorKeyframe</code>.</li>
  <li>A tutorial has been added for creating keyframe animations.</li>
  <li>The Wavefront OBJ Writer has been upgraded to optionally output mtllib and texture files.</li>
  <li>To address an inclusivity bug regarding use of <em>Master/Slave</em> terminology, the interfaces to <b>LibSim</b> and <b>IntegralCurve, Poincare, LimitCycle</b> and <b>LCS</b> operators were changed. <code>Master</code> is replaced with <code>Manager</code>, <code>Slave</code> is replaced with <code>Worker</code> and <code>MasterSlave</code> is replaced with <code>ManagerWorker</code>. Old behavior will continue to be supported through this release of VisIt but will be removed after this release. You will want to update any LibSim code, any python CLI code and any saved settings that may use the old interface.</li>
  <li>A number of key libraries used by VisIt have been upgraded.
    <ul>
      <li>OSPRay has been updated to version 3.0.0.</li>
      <li>VTK has been upgraded to version 9.2.6.</li>
      <li>Qt has been upgraded to version 6.4.2.</li>
    </ul>
  </li>
  <li>Support has been added for installing ffmpeg as part of a VisIt installation.</li>
</ul>

<a name="GUI_changes"></a>
<p><b><font size="4">Changes in GUI behavior for version 3.4</font></b></p>
<ul>
  <li>Added $&ltT&gttafile&ltI&gt <a href="https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/using_visit/MakingItPretty/Annotations.html?highlight=text%20annotation#named-database-values-in-text-annotations">text annotation macros</a> to read each time step's annotation, line-by-line, from a text file.</li>
</ul>

<a name="File_format"></a>
<p><b><font size="4">File format reader changes in version 3.4</font></b></p>
<ul>
  <li>Added the ability to export <a href="https://www.kitware.com/hypertreegrid-in-vtk-an-introduction/">VTK HyperTreeGrid</a> files. HyperTreeGrids are uniform hierarchical meshes. When exporting HyperTreeGrids the following restrictions apply:
    <ul>
      <li>The mesh must be a 3 dimensional rectilinear mesh.</li>
      <li>The mesh spacing must be uniform in each direction.</li>
      <li>The mesh dimensions must be equal in each direction.</li>
      <li>The mesh dimensions must be a power of 2.</li>
      <li>The variable must be zone centered.</li>
    </ul>
    Typically you would use the "Resample" operator to resample the variable to meet the restrictions above.
  </li>
  <li>Added the MFEM LOR setting to the MFEM Reader. Users may now choose between the new LOR scheme and the legacy LOR scheme. The new scheme is the default.</li>
  <li>VisIt's Blueprint reader has been enhanced so related high order volume fraction fields from a <i>matset</i> are grouped into a material that can be used with the FilledBoundary plot. The high order material data fields are refined through MFEM LOR, whose refinement level can be controlled with the <i>MultiresControl</i> operator.</li>
  <li>Removed the HDF 4 based readers, which include the Cosmos, RAGE, and ZeusMP readers.</li>
  <li>Removed the HDF 4 support in the Enzo reader.</li>
  <li>VisIt's Blueprint reader now supports materials with material numbers that do NOT fall in the range [0, N), where N is the number of materials.</li>
  <li>VisIt's Blueprint reader now detects high-order volume fractions fields following the naming pattern <i>volume_fraction_ZZZ</i> as a material.</li>
  <li>VisIt's Blueprint reader now limits the total number of open HDF5 file handles.</li>
  <li>A new Curve3D plugin was added for plotting 3D curves. Discontinuous curves can be represented using blank line breaks in the data file - in the same manner as gnuplot.</li>
</ul>

<a name="Plot_changes"></a>
<p><b><font size="4">Changes to VisIt's plots in version 3.4</font></b></p>
<ul>
  <li>The volume plot was completely revamped for VTK-9 and OSPRay 3. Please see the <a href=https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/using_visit/Plots/PlotTypes/VolumePlot.html>new docs</a> for more information.</li>
</ul>

<a name="Expression_changes"></a>
<p><b><font size="4">Changes to VisIt's expression language in version 3.4</font></b></p>
<ul>
  <li>The <i>matvf</i> expression now works with high order materials so it returns refined LOR volume fractions when the <i>MultiresControl</i> operator is used.</li>
</ul>

<a name="Query_changes"></a>
<p><b><font size="4">Changes to VisIt's picks and queries in version 3.4</font></b></p>
<ul>
  <li>The X Ray Image Query now supports three different file naming "schemes". The default is "none", which will attempt to keep the filename as simple as possible. There is an option to "family" output files, which has nearly the same behavior as the old "family_files" option. The final option is to have "cycle" information in filenames. The "family_files" option has not been removed to preserve backwards compatibility. If both options are present, "filename_scheme" will be used instead.</li>
  <li>The filenaming conventions have been updated and standardized for the X Ray Image Query outputs.</li>
  <li>The BMP output type for the X Ray Image Query has been removed.</li>
  <li>The X Ray Image Query warns users if their camera setup is error-prone.</li>
  <li>The X Ray Image Query now allows users to specify a view width, which can cause pixels in the output to not be square.</li>
  <li>The X Ray Image Query now defaults to using its complete camera specification instead of its simplified camera specification. Both are still available.</li>
  <li>The X Ray Image Query now returns a Python Dictionary containing information about the files written using the query. This object is None if the query failed, making it easy to check if the query was successful or not.</li>
  <li>The CLI function "GetQueryOutputValue" now returns "None" when there is no return value. This typically happens when an error with the query occurs.</li>
</ul>

<a name="Bugs_fixed"></a>
<p><b><font size="4">Other bugs fixed in version 3.4</font></b></p>
<ul>
  <li>A better error message was added for Revolved volume query when applied to meshes whose spatial dimension is not 2.</li>
  <li>Avert potential crash in mdserver matching file names for virtual database recognition.</li>
  <li>Fixed a bug where an error would incorrectly be detected when creating ghost zones. Specifically, it occurred when a block had mixed materials and the block didn't contain the material the variable was defined on.</li>
  <li>Fixed a bug reading particle data from Mili files. The particle data would not appear and could cause the engine to crash if the number of particles was larger than the number of elements.</li>
  <li>Fixed a bug where the pseudocolor plot would have NaNs in the legend if the mesh contained no elements or all the elements were ghost elements. Now it prints an error message with a description of the error.</li>
  <li>Fixed a bug where 'LaunchNowin' would fail on Windows when additional launch arguments were specified with `AddArgument`.</li>
  <li>Fixed a bug where the time scale and offset were not honored by the time slider annotation or $time annotation macro.</li>
  <li>Fixed a bug that caused VisIt's viewer to crash in rare occasions involving failed queries.</li>
  <li>Fixed an issue that caused VisIt to treat color tables created via the CLI as though they were built-in color tables.</li>
  <li>Fixed an issue that caused the "No Tags" tag to not appear in the tag table.</li>
  <li>The Color Table Attributes now no longer can set default continuous and/or default discrete color tables to not continuous and not discrete color tables, respectively, when a color table is removed.</li>
  <li>Fixed a bug with the python cli's TurnOffMaterials() method where it would give a poor error message when passing an integer instead of a string.</li>
  <li>The <code>GetLastError()</code> CLI method now accepts an optional integer argument indicating whether to clear out the last error message after retrieving it.</li>
  <li>For the Mili plugin, if a class is missing from a top level mili file, the plugin will now throw an exception explaining what happened instead of failing mysteriously.</li>
  <li>Fixed a bug where the Pseudocolor plot's legend would state 'Constant' when the data limits weren't constant.</li>
  <li>Improved the performance when working with large numbers of very complicated expressions.</li>
  <li>Fixed an issue where adding an item to the preferred plugin list in the plugin manager would add the wrong plugin.</li>
  <li>Fixed a bug where the Blueprint reader would fail to read polytopal meshes missing offsets.</li>
  <li>Our launcher now unsets the QT_SCALE_FACTOR environment variable, preventing graphical issues with Qt.</li>
</ul>

<a name="Configuration_changes"></a>
<p><b><font size="4">Configuration changes in version 3.4</font></b></p>
<ul>
  <li>A host profile has been added for running on Lawrence Livermore National Laboratory's RZWhippet system.</li>
  <li>A host profile has been added for running on Oak Ridge National Laboratory's Frontier system.</li>
  <li>A host profile has been added for running on NERSC's Perlmutter system.</li>
</ul>

<a name="Build_features"></a>
<p><b><font size="4">Changes to build_visit in version 3.4</font></b></p>
<ul>
  <li>The Mili library was upgraded to version 23.02 from 22.1.</li>
  <li>The Uintah libary was upgraded to version 2.6.2 from 2.6.1.</li>
  <li>Removed HDF 4 support.</li>
  <li>Added support for building VisIt on NVIDIA Grace CPU and Arm Architecture.</li> 
</ul>

<a name="Dev_changes"></a>
<p><b><font size="4">Changes for VisIt developers in version 3.4</font></b></p>
<ul>
  <li>Support for boolArray and boolVector was added to the XML code generation tools.</li>
  <li>Updated the "Creating a Release" section of the developer manual to describe the current process.</li>
  <li>The Building with Spack section of the user manual was enhanced with instructions for building with the develpment version of spack. Specific instructions for building on Frontier and Perlmutter were also added.</li>
  <li>Add support for Qt6.  The build_visit option is '--qt6', which will build qt version 6.4.2, and also force building of VTK-9 if '--vtk' is also enabled.</li>
  <li>Added the ability to create tabbed content in the sphinx documentation by adding the sphinx-tabs extension.</li>
  <li>The released Windows version is now compiled with MSVC2022.</li>
</ul>

<p>Click the following link to view the release notes for the previous version
of VisIt: <a href=relnotes3.3.3.html>3.3.3</a>.</p>
</body>
</html>
